<?php
declare (strict_types = 1);

namespace app\adminapi\middleware;

use app\adminapi\facade\ApiSafe;
use app\adminapi\facade\Token;
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
use think\Exception;

class Check
{
    /**
     * 处理请求
     *
     * @param \think\Request $request
     * @param \Closure       $next
     * @return Response
     */
    public function handle($request, \Closure $next)
    {

        try {
            # 检验token令牌
//            $user_id = Token::verifyToken();
//            $request->user_id = $user_id;// 向请求信息里面添加请求参数

//            # 检测用户是否有访问的权限
//            ApiSafe::checkAuth($user_id);
//
//            # 检测请求时间是否超时
//            ApiSafe::checkTimestamp();
//
//            # 检验签名是否有效
//            ApiSafe::checkSign();
//
//            # 访问次数限制
//            ApiSafe::throttle();

            return  $next($request);

        }catch (Exception $exception) {
            return  error($exception->getMessage(),$exception->getCode());
        }
    }
}
